package com.vegetable.modules.entity.stock.po;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * <p>
 * 销售出库变更记录查询参数对象
 * </p>
 *
 * @author system
 * @since 2025-10-23
 */
@Data
@ApiModel(value = "销售出库变更记录查询参数", description = "用于分页查询销售出库变更记录")
public class SalesOutChangeRecordQueryPO {

    @ApiModelProperty(value = "销售出库单ID")
    private Long salesOutId;

    @ApiModelProperty(value = "单据编号")
    private String docNo;

    @ApiModelProperty(value = "操作类型：SAVE-保存, SUBMIT-提交, UPDATE-修改, DELETE-删除")
    private String operationType;

    @ApiModelProperty(value = "变更类型：COMMODITY-商品明细, COST-其他费用, COMBINED-综合变更")
    private String changeType;

    @ApiModelProperty(value = "客户ID")
    private Long customerId;

    @ApiModelProperty(value = "客户名称")
    private String customerName;

    @ApiModelProperty(value = "操作人姓名")
    private String operatorName;

    @ApiModelProperty(value = "操作开始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(locale = "zh", timezone = "GMT+8")
    private Date startTime;

    @ApiModelProperty(value = "操作结束时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date endTime;

    @ApiModelProperty(value = "生产者ID")
    private Long producerId;

    @ApiModelProperty(value = "排序字段", example = "operate_time")
    private String orderBy;

    @ApiModelProperty(value = "排序方式：asc-升序, desc-降序", example = "desc")
    private String orderSort = "desc";

    @ApiModelProperty(value = "当前页", example = "1")
    private Long pageCurrent = 1L;

    @ApiModelProperty(value = "每页大小", example = "10")
    private Long pageSize = 10L;
}
